﻿@model IEnumerable<myFinance.Models.ViewModels.TarefaViewModel>
@{
	ViewBag.Title = "Tarefas";
}
<!DOCTYPE html>
<html>
<head>
    <title>Index</title>
    @if (false)
    {
        <script type="text/javascript" src="../../Scripts/jquery-1.6.4-vsdoc.js"></script>
        <script type="text/javascript" src="../../Scripts/jquery.validate-vsdoc.js"></script>
        <script type="text/javascript" src="../../Scripts/jquery.validate.js"></script>
        <script type="text/javascript" src="../../Scripts/numbers.js"></script>
    }   
    <style type="text/css">
        .grid
        {
            min-width: 900px;
            width: 100%;
            margin: auto;
        }
        .cod-header, .cod
        {
            text-align: center;
            width: 50px;
        }
        .datas-header, .datas
        {
            text-align: center;
            width: 70px;
        }
        .horas, .hora-inicio, .hora-fim
        {
            text-align: center;
            width: 40px;
        }
        .hora-inicio
        {
            color: Green;
        }
        .hora-fim
        {
            color: Red;
        }
        .concluido-header, .concluido
        {
            text-align: center;
            width: 40px;
        }
        .nome
        {
            padding-left: 5px;
        }
        .opcoes
        {
            width: 90px;
            text-align: center;
            padding: 0;
        }
        #Mes, #Ano
        {
            width: 130px;
            padding: 0 0 0 2px;
        }
        #Ano
        {
            width: 70px;
        }
        #filtrar
        {
            padding: 0 4px;
            margin-left: 20px;
        }
        #novo
        {
            font-size: 1.8em;
            padding: 20px;
        }
    </style>
</head>
<body>
    <table class="grid">
        <thead>
            <tr>
                <th colspan="8" id="novo">
                    <a href="@Url.Action("Cadastro", "Tarefa")/0" id="novatarefa">Nova tarefa</a>
                </th>
            </tr>
            <tr>
                <th colspan="8">
                    Filtro por período:
                    @Html.DropDownList("Mes", (IEnumerable<SelectListItem>)ViewBag.ComboMes)
                    @Html.DropDownList("Ano", (IEnumerable<SelectListItem>)ViewBag.ComboAno)
                    @Html.RadioButton("TipoData", true, new { id = "datacadastro", style = "margin-left: 10px;" })
                    <label for="datacadastro">
                        Data de Cadastro</label>
                    @Html.RadioButton("TipoData", false, true, new { id = "datatarefa", style = "margin-left: 10px;" })
                    <label for="datatarefa">
                        Data da Tarefa</label>
                    <input type="button" value="Filtrar" id="filtrar" />
                </th>
            </tr>
            <tr>
                <th class="cod-header">
                    Cód.
                </th>
                <th>
                    Descrição
                </th>
                <th class="datas-header">
                    Data Cad.
                </th>
                <th class="datas-header">
                    Data Tarefa
                </th>
                <th class="horas">
                    Início
                </th>
                <th class="horas">
                    Fim
                </th>
                <th class="concluido-header">
                    Concluída?
                </th>
                <th class="opcoes">
                </th>
            </tr>
        </thead>
        @if (Model.Count() > 0)
        {
            <tbody>
                @foreach (var item in Model)
                {
                    var concluida = item.Concluida ? "tarefa-concluida" : "tarefa-aberta";
                    <tr class="@concluida">
                        <td class="cod">
                            @Html.DisplayFor(modelItem => item.Codigo)
                        </td>
                        <td class="nome">
                            @Html.DisplayFor(modelItem => item.Nome)
                        </td>
                        <td class="datas">
                            @item.DataCadastro.ToShortDateString()
                        </td>
                        <td class="datas">
                            @item.DataTarefa.ToShortDateString()
                        </td>
                        <td class="hora-inicio">
                            @{var inicio = new DateTime(item.HoraInicio.Ticks).ToString("HH:mm");}
                            @inicio
                        </td>
                        <td class="hora-fim">
                            @{var fim = new DateTime(item.HoraFim.Ticks).ToString("HH:mm");}
                            @fim
                        </td>
                        <td class="concluido">
                            @Html.DisplayFor(modelItem => item.Concluida)
                        </td>
                        <td class="opcoes">
                            <a href="@Url.Action("Cadastro", "Tarefa")/@item.Codigo" class="editar">Editar</a> | <a href="#" data-url="@Url.Action("Excluir", "Tarefa")/@item.Codigo" class="excluir" onclick="return false;">
                                Excluir</a>
                        </td>
                    </tr>
                }
            </tbody>
            <tfoot>
                <tr>
                    <td colspan="2" style="text-align: right">
                        Total de Tarefas para o mês @DateTime.Now.Month: 
                    </td>
                    <td style="text-align: center; color: Red; font-size: 16px">
                        @Model.Count()
                    </td>
                    <td colspan="4" style="text-align: right">
                        Total de Tarefas Concluídas no mês @DateTime.Now.Month: 
                    </td>
                    <td style="text-align: center; color: Green; font-size: 16px">
                        @Model.Where(w => w.Concluida).Count()
                    </td>
                </tr>
            </tfoot>        
        }
        else
        {
            <tbody>
                <tr>
                    <td colspan="8">
                        &nbsp;Não foram encontrados registros ou ainda não existem tarefas cadastradas.
                    </td>
                </tr>
            </tbody>
            <tfoot>
                <tr>
                    <td colspan="8">
                    </td>
                </tr>
            </tfoot>
        }
		</table>
        <script type="text/javascript">
            $(function () {
                loadTable('grid');
                hideLoading();
            });
            $('#filtrar').click(function () {
                showLoading();
                $.ajax({
                    url: '@Url.Action("Filtrar", "Tarefa")',
                    type: 'GET',
                    dataType: 'json',
                    data: { mes: $('#Mes').val(), ano: $('#Ano').val(), tipoData: $("input[name='TipoData']:checked").val() },
                    error: function () {
                        alert('Houve um erro na requisição dos dados!\nPor favor, entre em contato com o Administrador do seu sistema.');
                        hideLoading();
                    },
                    success: function (data) {
                        var html = "";
                        if (data != "" || data != undefined) {
                            $('.grid tbody').empty().append(data.tbody);
                            $('.grid tfoot').empty().append(data.tfoot);
                            hideLoading();
                        }
                    },
                    statusCode: {
                        500: function () {
                            alert('ERROR TYPE: 500 Internal Server Error\n\nHouve um erro na resposta do servidor.\nPor favor, entre em contato com o Administrador do seu sistema.');
                            hideLoading();
                        },
                        404: function () {
                            alert('ERROR TYPE: 404 Not Found\n\nA URL requisitada não existe.\nPor favor, entre em contato com o Administrador do seu sistema.');
                            hideLoading();
                        }
                    }
                });
            });
		</script>
</body>
</html>
